package com.business.user.service;


import com.baomidou.mybatisplus.plugins.Page;
import com.business.common.dto.R;
import com.business.common.utils.PageUtils;
import com.business.user.entity.Message;

import java.util.List;
import java.util.Map;

/**
 * 消息表:业务接口类
 * @author chenjiehong
 * @date 2019-11-29 14:28:27
 * @since 1.0
 */
public interface MessageService {
    
    /**
     * 新增消息表
     * 
     * 
     * @param message
     * @date 2019-11-29 14:28:27
     */
    Message add(Message message);
    
    
    /**
     * 查询消息表
     * 
     * 
     * @param id
     * @date 2019-11-29 14:28:27
     */
    Message query(Integer id);

    
    /**
     * 分页查询消息表
     * 
     * 
     * @param page
     * @param type
     * @param isAll
     * @date 2019-11-29 14:28:27
     */
    PageUtils queryPage(Page<Message> page, Integer userId, Integer type, Integer isAll);

    /**
     * 分页查询自己发出的消息
     * @param page
     * @param userId
     * @param type
     * @param isAll
     * @return
     */
    PageUtils queryPageByOwn(Page<Message> page, Integer userId, Integer type, Integer isAll);

    
    /**
     * 更新消息表
     * 
     * 
     * @param id
     * @param isRead
     * @date 2019-11-29 14:28:27
     */
    Integer updateState(Integer id,Integer isRead);

    /**
     * 获取所有未读的总数
     * @param userId
     * @return
     */
    Integer getCount(Integer userId);

    /**
     * 获取未读各类型消息的数量
     * @param userId
     * @return
     */
    List<Map<String, Integer>> getCountByType(Integer userId);

}